1 /* 2 * This file is part of gtkD. 3 * 4 * gtkD is free software; you can redistribute it and/or modify 5 * it under the terms of the GNU Lesser General Public License 6 * as published by the Free Software Foundation; either version 3 7 * of the License, or (at your option) any later version, with 8 * some exceptions, please read the COPYING file. 9 * 10 * gtkD is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 * GNU Lesser General Public License for more details. 14 * 15 * You should have received a copy of the GNU Lesser General Public License 16 * along with gtkD; if not, write to the Free Software 17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110, USA 18 */ 19 20 // generated automatically - do not change 21 // find conversion definition on APILookup.txt 22 // implement new conversion functionalities on the wrap.utils pakage 23 24 25 module gtk.FontChooserIF; 26 27 private import glib.Str; 28 private import glib.c.functions; 29 private import gobject.ObjectG; 30 private import gobject.Signals; 31 private import gtk.c.functions; 32 public import gtk.c.types; 33 private import pango.PgFontDescription; 34 private import pango.PgFontFace; 35 private import pango.PgFontFamily; 36 private import pango.PgFontMap; 37 private import std.algorithm; 38 39 40 /** 41 * `GtkFontChooser` is an interface that can be implemented by widgets 42 * for choosing fonts. 43 * 44 * In GTK, the main objects that implement this interface are 45 * [class@Gtk.FontChooserWidget], [class@Gtk.FontChooserDialog] and 46 * [class@Gtk.FontButton]. 47 */ 48 public interface FontChooserIF{ 49 /** Get the main Gtk struct */ 50 public GtkFontChooser* getFontChooserStruct(bool transferOwnership = false); 51 52 /** the main Gtk struct as a void* */ 53 protected void* getStruct(); 54 55 56 /** */ 57 public static GType getType() 58 { 59 return gtk_font_chooser_get_type(); 60 } 61 62 /** 63 * Gets the currently-selected font name. 64 * 65 * Note that this can be a different string than what you set with 66 * [method@Gtk.FontChooser.set_font], as the font chooser widget may 67 * normalize font names and thus return a string with a different 68 * structure. For example, “Helvetica Italic Bold 12” could be 69 * normalized to “Helvetica Bold Italic 12”. 70 * 71 * Use [method@Pango.FontDescription.equal] if you want to compare two 72 * font descriptions. 73 * 74 * Returns: A string with the name 75 * of the current font 76 */ 77 public string getFont(); 78 79 /** 80 * Gets the currently-selected font. 81 * 82 * Note that this can be a different string than what you set with 83 * [method@Gtk.FontChooser.set_font], as the font chooser widget may 84 * normalize font names and thus return a string with a different 85 * structure. For example, “Helvetica Italic Bold 12” could be 86 * normalized to “Helvetica Bold Italic 12”. 87 * 88 * Use [method@Pango.FontDescription.equal] if you want to compare two 89 * font descriptions. 90 * 91 * Returns: A `PangoFontDescription` for the 92 * current font 93 */ 94 public PgFontDescription getFontDesc(); 95 96 /** 97 * Gets the `PangoFontFace` representing the selected font group 98 * details (i.e. family, slant, weight, width, etc). 99 * 100 * If the selected font is not installed, returns %NULL. 101 * 102 * Returns: A `PangoFontFace` representing the 103 * selected font group details 104 */ 105 public PgFontFace getFontFace(); 106 107 /** 108 * Gets the `PangoFontFamily` representing the selected font family. 109 * 110 * Font families are a collection of font faces. 111 * 112 * If the selected font is not installed, returns %NULL. 113 * 114 * Returns: A `PangoFontFamily` representing the 115 * selected font family 116 */ 117 public PgFontFamily getFontFamily(); 118 119 /** 120 * Gets the currently-selected font features. 121 * 122 * Returns: the currently selected font features 123 */ 124 public string getFontFeatures(); 125 126 /** 127 * Gets the custom font map of this font chooser widget, 128 * or %NULL if it does not have one. 129 * 130 * Returns: a `PangoFontMap` 131 */ 132 public PgFontMap getFontMap(); 133 134 /** 135 * The selected font size. 136 * 137 * Returns: A n integer representing the selected font size, 138 * or -1 if no font size is selected. 139 */ 140 public int getFontSize(); 141 142 /** 143 * Gets the language that is used for font features. 144 * 145 * Returns: the currently selected language 146 */ 147 public string getLanguage(); 148 149 /** 150 * Returns the current level of granularity for selecting fonts. 151 * 152 * Returns: the current granularity level 153 */ 154 public GtkFontChooserLevel getLevel(); 155 156 /** 157 * Gets the text displayed in the preview area. 158 * 159 * Returns: the text displayed in the preview area 160 */ 161 public string getPreviewText(); 162 163 /** 164 * Returns whether the preview entry is shown or not. 165 * 166 * Returns: %TRUE if the preview entry is shown or %FALSE if it is hidden. 167 */ 168 public bool getShowPreviewEntry(); 169 170 /** 171 * Adds a filter function that decides which fonts to display 172 * in the font chooser. 173 * 174 * Params: 175 * filter = a `GtkFontFilterFunc` 176 * userData = data to pass to @filter 177 * destroy = function to call to free @data when it is no longer needed 178 */ 179 public void setFilterFunc(GtkFontFilterFunc filter, void* userData, GDestroyNotify destroy); 180 181 /** 182 * Sets the currently-selected font. 183 * 184 * Params: 185 * fontname = a font name like “Helvetica 12” or “Times Bold 18” 186 */ 187 public void setFont(string fontname); 188 189 /** 190 * Sets the currently-selected font from @font_desc. 191 * 192 * Params: 193 * fontDesc = a `PangoFontDescription` 194 */ 195 public void setFontDesc(PgFontDescription fontDesc); 196 197 /** 198 * Sets a custom font map to use for this font chooser widget. 199 * 200 * A custom font map can be used to present application-specific 201 * fonts instead of or in addition to the normal system fonts. 202 * 203 * ```c 204 * FcConfig *config; 205 * PangoFontMap *fontmap; 206 * 207 * config = FcInitLoadConfigAndFonts (); 208 * FcConfigAppFontAddFile (config, my_app_font_file); 209 * 210 * fontmap = pango_cairo_font_map_new_for_font_type (CAIRO_FONT_TYPE_FT); 211 * pango_fc_font_map_set_config (PANGO_FC_FONT_MAP (fontmap), config); 212 * 213 * gtk_font_chooser_set_font_map (font_chooser, fontmap); 214 * ``` 215 * 216 * Note that other GTK widgets will only be able to use the 217 * application-specific font if it is present in the font map they use: 218 * 219 * ```c 220 * context = gtk_widget_get_pango_context (label); 221 * pango_context_set_font_map (context, fontmap); 222 * ``` 223 * 224 * Params: 225 * fontmap = a `PangoFontMap` 226 */ 227 public void setFontMap(PgFontMap fontmap); 228 229 /** 230 * Sets the language to use for font features. 231 * 232 * Params: 233 * language = a language 234 */ 235 public void setLanguage(string language); 236 237 /** 238 * Sets the desired level of granularity for selecting fonts. 239 * 240 * Params: 241 * level = the desired level of granularity 242 */ 243 public void setLevel(GtkFontChooserLevel level); 244 245 /** 246 * Sets the text displayed in the preview area. 247 * 248 * The @text is used to show how the selected font looks. 249 * 250 * Params: 251 * text = the text to display in the preview area 252 */ 253 public void setPreviewText(string text); 254 255 /** 256 * Shows or hides the editable preview entry. 257 * 258 * Params: 259 * showPreviewEntry = whether to show the editable preview entry or not 260 */ 261 public void setShowPreviewEntry(bool showPreviewEntry); 262 263 /** 264 * Emitted when a font is activated. 265 * 266 * This usually happens when the user double clicks an item, 267 * or an item is selected and the user presses one of the keys 268 * Space, Shift+Space, Return or Enter. 269 * 270 * Params: 271 * fontname = the font name 272 */ 273 gulong addOnFontActivated(void delegate(string, FontChooserIF) dlg, ConnectFlags connectFlags=cast(ConnectFlags)0); 274 }